home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 1 / Meeting Pearls Vol 1 (1994).iso / amok98-106 / amok98 / programminginoberon / sequence.mod < prev    next >
Text File  |  1993-10-07  |  622b  |  38 lines

  1. MODULE Sequences;  
  2. (* computes mean and variance of a sequence of sample values
  3.      Exercise 10.2, page 182 *)
  4.  
  5. TYPE
  6.     Sequence* = RECORD
  7.         X: REAL;
  8.         S2: REAL;
  9.         n: LONGINT
  10.     END;
  11.  
  12. PROCEDURE Open*(VAR s: Sequence);
  13. BEGIN
  14.     s.X := 0;  s.S2 := 0;  s.n := 0
  15. END Open;
  16.  
  17. PROCEDURE Add*(VAR s: Sequence; x: REAL);
  18. BEGIN
  19.     INC(s.n);
  20.     IF s.n > 1 THEN 
  21.         s.S2 := s.S2*(s.n - 2)/(s.n - 1) + (x - s.X)*(x - s.X)/s.n
  22.     END;
  23.     s.X := s.X + (x - s.X)/s.n
  24. END Add;
  25.  
  26. PROCEDURE Mean*(s: Sequence): REAL;
  27. BEGIN
  28.     RETURN s.X
  29. END Mean;
  30.  
  31. PROCEDURE Var*(s: Sequence): REAL;
  32. BEGIN
  33.     RETURN s.S2
  34. END Var;
  35.  
  36. END Sequences.    (* Copyright M. Reiser, 1992 *)
  37.  
  38.